package cn.qn.service.security;

import cn.qn.base.PageVO;
import cn.qn.dto.security.RoleDTO;
import cn.qn.moudle.security.Menu;
import cn.qn.moudle.security.Role;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;

import java.util.List;
import java.util.Set;

/**
 * @author: Bryant
 * @date: 2019/5/24
 * @description:
 */
public interface RoleService {
    /**
     * 通过UserId查询对应的角色
     * @param userId
     * @return
     */
    List<Role> findByUserId(String userId);

    /**
     * @description 角色列表
     * @author Jeet
     * @date 15:10 2019/5/28
     **/
    PageVO<Role> page(RoleDTO dto, PageBounds pageBounds);

    /**
     * @description 角色列表
     * @author Jeet
     * @date 15:10 2019/5/28
     **/
    List<Role> findAllRole();

    /**
     * @description  新增角色
     * @author Jeet
     * @date 15:45 2019/5/28
     **/
    Role insert(Role role);

    /**
     * @description 通过角色编码查询
     * @author Jeet
     * @date  2019/5/28
     **/
    Role findByRoleCode(String code);

    /**
     * @description 修改
     * @author Jeet
     * @date 15:51 2019/5/28
     **/
    Role update(Role role);

    /**
     * @description
     * @author Jeet
     * @date 16:15 2019/5/28
     **/
    Set<Menu> menuPage(Integer id);

    /**
     * @author Jeet
     * @date 16:34 2019/5/28
     * @description 新增角色菜单
     **/
    boolean menuAdd(Integer roleId, List<Integer> menuIds);
}
